import { rowLocation, colLocation, mouseposition } from '../global/location'
import { selectHightlightShow } from './select'
import menuButton from './menuButton'
import luckysheetFreezen from './freezen'
import Store from '../store'
import $ from 'jquery'

//设备是移动端
export default function mobileinit(){
    //去除滚动条
    Store.cellMainSrollBarSize = 0

    //滑动滚动表格
    let luckysheet_touchmove_status = false,
        luckysheet_touchmove_startPos = {},
        luckysheet_touchhandle_status = false,
        _scrollTimer = null
    $(document).on('touchstart', '#luckysheet-grid-window-1', function(event){
        clearInterval(_scrollTimer)//clear timer
        luckysheet_touchmove_status = true

        let touch = event.originalEvent.targetTouches[0]
        luckysheet_touchmove_startPos = {
            x: touch.pageX,
            y: touch.pageY,
            vy:0, //vy可以理解为滑动的力度
            moveType:'y',
        }
    })
    $(document).on('touchmove', '#luckysheet-grid-window-1', function(event){
        if(event.originalEvent.targetTouches.length > 1 || (event.scale && event.scale !== 1)){
            return
        }

        let touch = event.originalEvent.targetTouches[0]

        if(luckysheet_touchmove_status){//滚动
            let slideX = touch.pageX - luckysheet_touchmove_startPos.x
            let slideY = touch.pageY - luckysheet_touchmove_startPos.y

            luckysheet_touchmove_startPos.x = touch.pageX
            luckysheet_touchmove_startPos.y = touch.pageY

            let scrollLeft = $('#luckysheet-scrollbar-x').scrollLeft()
            let scrollTop = $('#luckysheet-scrollbar-y').scrollTop()

            // console.log("start",scrollTop, slideY,touch.pageY);

            scrollLeft -= slideX
            scrollTop -= slideY

            // console.log(touch,touch.pageY, luckysheet_touchmove_startPos.y, slideY);

            if(scrollLeft < 0){
                scrollLeft = 0
            }

            if(scrollTop < 0){
                scrollTop = 0
            }

            $('#luckysheet-scrollbar-y').scrollTop(scrollTop)

            luckysheet_touchmove_startPos.vy_y = slideY
            luckysheet_touchmove_startPos.scrollTop = scrollTop

            $('#luckysheet-scrollbar-x').scrollLeft(scrollLeft)

            luckysheet_touchmove_startPos.vy_x = slideX

            luckysheet_touchmove_startPos.scrollLeft = scrollLeft


        }
        else if(luckysheet_touchhandle_status){//选区
            let mouse = mouseposition(touch.pageX, touch.pageY)
            let x = mouse[0] + $('#luckysheet-cell-main').scrollLeft()
            let y = mouse[1] + $('#luckysheet-cell-main').scrollTop()

            let row_location = rowLocation(y),
                row = row_location[1],
                row_pre = row_location[0],
                row_index = row_location[2]
            let col_location = colLocation(x),
                col = col_location[1],
                col_pre = col_location[0],
                col_index = col_location[2]

            let last = $.extend(true, {}, Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1])

            let top = 0, height = 0, rowseleted = []
            if (last.top > row_pre) {
                top = row_pre
                height = last.top + last.height - row_pre

                if(last.row[1] > last.row_focus){
                    last.row[1] = last.row_focus
                }

                rowseleted = [row_index, last.row[1]]
            }
            else if (last.top == row_pre) {
                top = row_pre
                height = last.top + last.height - row_pre
                rowseleted = [row_index, last.row[0]]
            }
            else {
                top = last.top
                height = row - last.top - 1

                if(last.row[0] < last.row_focus){
                    last.row[0] = last.row_focus
                }

                rowseleted = [last.row[0], row_index]
            }

            let left = 0, width = 0, columnseleted = []
            if (last.left > col_pre) {
                left = col_pre
                width = last.left + last.width - col_pre

                if(last.column[1] > last.column_focus){
                    last.column[1] = last.column_focus
                }

                columnseleted = [col_index, last.column[1]]
            }
            else if (last.left == col_pre) {
                left = col_pre
                width = last.left + last.width - col_pre
                columnseleted = [col_index, last.column[0]]
            }
            else {
                left = last.left
                width = col - last.left - 1

                if(last.column[0] < last.column_focus){
                    last.column[0] = last.column_focus
                }

                columnseleted = [last.column[0], col_index]
            }

            let changeparam = menuButton.mergeMoveMain(columnseleted, rowseleted, last, top, height, left, width)
            if(changeparam != null){
                columnseleted = changeparam[0]
                rowseleted= changeparam[1]
                top = changeparam[2]
                height = changeparam[3]
                left = changeparam[4]
                width = changeparam[5]
            }

            last['row'] = rowseleted
            last['column'] = columnseleted

            last['left_move'] = left
            last['width_move'] = width
            last['top_move'] = top
            last['height_move'] = height

            Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1] = last

            selectHightlightShow()

            luckysheetFreezen.scrollFreezen()
        }

        event.stopPropagation()
    })
    $(document).on('touchend', function(event){
        if(luckysheet_touchmove_status){
            let vy_x = Math.abs(luckysheet_touchmove_startPos.vy_x), friction_x = ((vy_x >> 31) * 2 + 1) * 0.25

            let vy_y = Math.abs(luckysheet_touchmove_startPos.vy_y), friction_y = ((vy_y >> 31) * 2 + 1) * 0.25
            if(vy_x>0 || vy_y>0){
                _scrollTimer = setInterval(function () {//
                    vy_x -= friction_x//力度按 惯性的大小递减
                    vy_y -= friction_y//力度按 惯性的大小递减

                    if(vy_x<=0){
                        vy_x = 0
                    }
                    if(vy_y<=0){
                        vy_y = 0
                    }

                    if(luckysheet_touchmove_startPos.vy_y>0){
                        luckysheet_touchmove_startPos.scrollTop -= vy_y
                    }
                    else{
                        luckysheet_touchmove_startPos.scrollTop += vy_y
                    }

                    $('#luckysheet-scrollbar-y').scrollTop(luckysheet_touchmove_startPos.scrollTop)

                    if(luckysheet_touchmove_startPos.vy_x>0){
                        luckysheet_touchmove_startPos.scrollLeft -= vy_x
                    }
                    else{
                        luckysheet_touchmove_startPos.scrollLeft += vy_x
                    }

                    $('#luckysheet-scrollbar-x').scrollLeft(luckysheet_touchmove_startPos.scrollLeft)

                    if(vy_x<=0 && vy_y<=0){
                        clearInterval(_scrollTimer)
                    }
                }, 20)
            }

        }
        luckysheet_touchmove_status = false
        // luckysheet_touchmove_startPos = {};

        luckysheet_touchhandle_status = false
    })

    //滑动选择选区
    $(document).on('touchstart', '.luckysheet-cs-touchhandle', function(event){
        luckysheet_touchhandle_status = true
        luckysheet_touchmove_status = false
        // console.log(1111111111);
        event.stopPropagation()
    })

    //禁止微信下拉拖出微信背景
    document.addEventListener('touchmove', function(event){
        event.preventDefault()
    }, {
        passive: false
    })
}